package com.yc.exam.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yc.exam.entity.Role;
import com.yc.exam.vo.ReturnDistributionVo;
import com.yc.exam.vo.RoleVo;

import java.util.List;

/**
 * 角色 服务类
 *
 * @author 王妍
 * @since 2022-02-20
 */
public interface IRoleService extends IService<Role> {

  /**
   * 获取用户的角色信息
   *
   * @param userId
   * @return 返回角色名的集合
   */
  List<String> loadUserRoleByUserId(Long userId);

  /**
   * 加载角色页
   *
   * @param roleVoPage 角色列表
   * @param roleVo 劫色条件
   * @return 角色页
   */
  Page<RoleVo> loadPage(Page<RoleVo> roleVoPage, RoleVo roleVo);

  /**
   * 获取用户的角色分配
   *
   * @param userId 用户id
   * @return 分配信息
   */
  ReturnDistributionVo<Role> getRoleDistribution(Long userId);

  /**
   * 为菜单分配角色
   *
   * @param menuId 菜单id
   * @param asList 角色Ids
   */
  void configureRoleForMenu(Long menuId, List<Long> asList);

  /**
   * 获取用户的角色分配
   *
   * @param menuId 用户id
   * @return 分配信息
   */
  ReturnDistributionVo<Role> getRoleDistributionByMenuId(Long menuId);
}
